Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

234
Visualizações
reaccionar | error "Los objetos no son válidos como un elemento secundario de React" al intentar pasar a la matriz de estado

Estoy aprendiendo algo de React con un proyecto que soñé que tiene datos que se pasan a través de accesorios y también mensajes pubsub. Estoy pasando una dirección de correo electrónico a través de pubsub y funciona bien en el método de suscripción de pubsub, así:

 myEmailChannel.subscribe("email", (msg) => { let data = msg.data; console.log(data); });

Lo anterior da como resultado un registro de consola de

 value: 'test@test.com'

test@test.com es un correo electrónico de prueba falso que envié a través de pubsub. El problema ocurre cuando trato de agregar los datos a una matriz de estado ya inicializada de "correos electrónicos", aparece un error loco sobre " Los objetos no son válidos como un niño React (encontrado: objeto con claves {valor}). Si te referías a para renderizar una colección de niños, use una matriz en su lugar ". Estoy intentando algo como:

 myEmailChannel.subscribe("email", (msg) => { let data = msg.data; console.log(data); let emails = [...this.state.emails]; emails.push({ value: data }); this.setState({emails}); });

solo para obtener el error antes mencionado. En realidad, sucede sin importar cómo intente agregar los datos a la matriz. Creo que entiendo que solo estoy formateando incorrectamente los datos entrantes para la matriz de estado. Cualquier ayuda sería muy apreciada.

EDITAR: Seguí el error un poco más y dice que el error ocurre cuando intenta iterar sobre la matriz para mostrar:

 {this.state.emails.map((email, index) => { return ( <li key={index}>{email}</li> ); })}
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Como mencionaste, el email es un objeto. Cuando haces algo como esto

 this.state.emails.map((email, index) => ( <li key={index}>{email}</li> ))

React se confunde. No sabe si debe tratar el objeto de email como una cadena (que es exactamente lo que está tratando de hacer) o representarlo como un componente.

Puedes hacer algo como esto en su lugar.

 this.state.emails.map((email, index) => ( <li key={index}>{email.value}</li> ))
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda